home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 3 / Amiga Tools 3.iso / grafik / raytracing / rayshade-4.0.6.3 / readme < prev    next >
Text File  |  1994-08-10  |  9KB  |  189 lines

  1. [
  2.   Updated Aug 09 1994 to point to the cs.princeton.edu ftp site and
  3.   mail address rather than the yale one, since princeton is THE place
  4.   to look I've been told.  Also note that, unless someone gives reason
  5.   to do otherwise, tbird.cc.iastate.edu has a writable directory. 
  6.     --Michael Graff <explorer@iastate.edu>
  7. ]
  8.  
  9. This is version 4.0 of rayshade, a ray tracing program.
  10. Rayshade reads a multi-line ASCII file describing a scene to be rendered
  11. and produces a Utah Raster Toolkit "RLE" format file containing the
  12. ray traced image.
  13.  
  14. Rayshade features:
  15.  
  16.     Fifteen primitives (blob, box, cone, cylinder, height field,
  17.     plane, polygon, sphere, torus, flat- and Phong-shaded triangle,
  18.     multi-colored blobs, flames, solids of revolution, ``swept spheres'')
  19.  
  20.     Aggregate objects
  21.  
  22.     Constructive solid geometry
  23.  
  24.     Point, directional, extended, spot, quadrilateral, and projection
  25.     light sources
  26.  
  27.     Solid procedural texturing, bump mapping, and
  28.         2D "image" texture mapping
  29.  
  30.     Antialiasing through variable-rate "jittered" sampling
  31.  
  32.     Arbitrary linear transformations on objects and texture/bump maps.
  33.  
  34.     Use of uniform spatial subdivision or hierarchy of bounding
  35.         volumes to speed rendering
  36.  
  37.     Options to facilitate rendering of stereo pairs
  38.  
  39.     Rudimentary animation support
  40.  
  41.     Z-buffer output
  42.  
  43. There are many differences between rayshade versions 3.0 and 4.0.  In
  44. particular, the input syntax has changed.  Input files created for
  45. version 3.0 must be converted to version 4.0 syntax using the provided
  46. conversion utility, rsconvert.  See Doc/Changes for a list of some of
  47. the more important changes.
  48.  
  49. Rayshade v4.0 has been tested on many different UNIX-based computers,
  50. including: SGI 4D, IBM RS6000, Sun Sparcstation 1, Sun 3, DECstation,
  51. Apollo DN10000, NeXT.  If your machine has a C compiler, enough memory
  52. (at least 2Mb), and runs something resembling UNIX, rayshade should be fairly
  53. easy to port.  Be warned that rayshade uses yacc and lex to process input
  54. files.  If you do not have lex and yacc, try to get flex and bison from
  55. the Free Software Foundation folks (ftp to prep.ai.mit.edu).  Attempts
  56. to port rayshade to 16-bit machines will likely lead to nothing but
  57. a profound sense of frustration.
  58.  
  59. Rayshade uses a Configure script in order to determine how it should
  60. be compiled.  This means that if you're not runing under UNIX, you'll
  61. probably have to create a config.h and edit the Makefiles by hand.
  62. If you create a config.h file and/or Makefiles for use in an non-UNIX
  63. environment, send them to us and we will make it available for use by
  64. others.  The prototype config.H file may be of some help.
  65.  
  66. Normally, rayshade makes use of the Utah Raster toolkit.  You are
  67. strongly encouraged to get a copy of the toolkit, as it provides a
  68. host of useful tools for image manipulation and a library for reading/writing
  69. the toolkit's "RLE" format image files.  "blurb.urt" is the "blurb" file from
  70. the latest distribution of the toolkit.  Also of interest is the
  71. "fbm" library, available from nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z, which
  72. provides additional tools for converting Utah Raster format images
  73. to/from other formats.
  74.  
  75. If you do not want to or cannot use the Utah Raster toolkit, rayshade
  76. can be configured to create image files using a generic format
  77. identical to that used by Mark VandeWettering's "mtv" ray tracer.
  78.  
  79. The rayshade distribution consists of two libraries (libray, libshade) and
  80. several applications (rayshade proper, rayview, raypaint) that are
  81. linked against these libraries.  To compile, run the Configure script to
  82. generate config.h and the Makefiles, then run "make depend"
  83. followed by "make".  If the Configuration script fails, or if
  84. it can't determine a way to generate dependencies, you'll probably
  85. have to edit the Makefiles or extract them from the Makefile.SH scripts
  86. by hand.  Don't be overly alarmed if there are a few non-fatal error
  87. messages while running "make depend"
  88.  
  89. The Doc directory contains a User's Guide in the Guide subdirectory,
  90. as well as a quick-reference sheet and some information that might
  91. be useful in porting or modifying rayshade.  To create a formatted
  92. version of the User's Guide, you'll need LaTeX.  If you don't have
  93. LaTeX, a postscript version of the Guide is available via anonymous
  94. ftp from ftp.princeton.edu (see below).
  95.  
  96. The etc directory contains miscellaneous goodies, including the source
  97. to a filter to convert rayshade v3.0 input to rayshade 4.0.
  98. The Example directory contains example input files, which may be
  99. used to test rayshade and to familiarize yourself with rayshade's input
  100. syntax.  You can also run any one of Eric Haines'
  101. Standard Procedural Databases through awk using the etc/nff2shade.awk
  102. script, and then feed the results to rayshade.  Note that for several
  103. of the databases, you will need to tweak the data a bit to achieve
  104. optimal runtimes.  See nff2shade.awk for details.
  105.  
  106. Rayshade was not designed to be, nor is it, the be-all and end-all of
  107. ray tracers.  It was meant to be reasonably fast, portable, and easy to
  108. modify.  It has some nice features which allow you to produce
  109. pretty pictures, but there are countless extensions, modifications,
  110. and improvements which could be made.  There are many routines which may be
  111. optimized and many features which could be added.  For a list of suggested
  112. improvements and projects see "TODO".  You are strongly encouraged to modify
  113. the source code left and right.
  114.  
  115. While there is currently no documentation for the libraries, it
  116. should be easy for you to add your own primitives, textures, aggregates,
  117. and light sources by looking at the code and sending mail if you get
  118. stuck.
  119.  
  120. Additional rayshade goodies are available via anonymous ftp from
  121. ftp.princeton.edu in pub/pub/Graphics/rayshade.4.0.
  122. If you have contributions of new objects, textures, input files,
  123. configuration files, or images to make, feel free to send us email or
  124. to drop off a copy via ftp in the "incoming" directory.
  125.  
  126. [ Michael here:  I also have an incoming directory on tbird.cc.iastate.edu,
  127.   which can be used to get new patches to me, more example files, etc. ]
  128.  
  129. The first version of rayshade was written by Craig Kolb, David P. Dobkin,
  130. and David C. Hoffman during 1987-1988, and was heavily based on an
  131. "introductory" public domain ray tracer written by Roman Kuchkuda.
  132. Rayshade v3.0 was written by Craig Kolb and released in the Fall of 1989.
  133. Rayshade v4.0 was written by Craig Kolb and Rod Bogart during 1990-1991.
  134. Rayshade v4.0.6.3 was released by Michael Graff August 1994 using a
  135. patched 4.0.6 as a base and applying other patches to make it spiffy.
  136.  
  137. Rayshade was made possible by many people who have made suggestions,
  138. fixed bugs, and who have been all-around good sports about the whole thing.
  139.  
  140. Thanks to Gavin Bell, David Dobkin, Eric Haines, Lefteris Koutsofios,
  141. Ken Musgrave, Przemek Prusinkiewicz, and Allan Snider for their
  142. encouragement, comments, and willingness to be on the Front Lines.
  143.  
  144. Thanks to Roman Kuchkuda for providing such a solid base upon which
  145. to build.
  146.  
  147. Special thanks to Robert Skinner for providing the Noise(), DNoise(),
  148. and other texturing functions and allowing them to be redistributed.
  149.  
  150. Pat Hanrahan's OOGL provided the spirit (if not the letter) of the
  151. modularity of rayshade v4.0.  Thanks to Pat and to Mark VandeWettering
  152. for the 'net tracer' conversations and for the inspiration to do something
  153. to clean up rayshade.
  154.  
  155. Thanks to Marc Andreessen, Tony Apodaca, Ray Bellis, Dominique Boisvert,
  156. William Bouma, Allen Braunsdorf, Jeff Butterworth, Nick Carriero,
  157. Nancy Everson, Tom Friedel, Robert Funchess, David Gelernter, Mike Gigante,
  158. Ed Herderick, John Knuston, Raphael Manfredi, Lee Moore, Dietmar Saupe,
  159. Iain Sinclair, Brian Wyvill, and everybody else for their bugfixes,
  160. suggestions, input files, encouragement, and other feedback.
  161.  
  162. Thanks also to Mark Podlipec for providing the blob and torus objects.
  163.  
  164. Thanks to Jochen Schwarze for the cubic and quartic root-finding functions.
  165. His code, and a host of other useful routines, can be found in
  166. "Graphics Gems", edited by Andrew Glassner.
  167.  
  168. Thanks to Benoit Mandelbrot for the support he provided this project.
  169.  
  170. If you find any bugs, make any useful extensions, have a nice input file,
  171. port rayshade to a new environment, or need assistance understanding a
  172. particularly braindamaged section of code, please let us know.  We can be
  173. most easily reached by email.
  174.  
  175. Once you start using rayshade, and you'd like to be kept abreast of
  176. changes and extensions, send a message to rayshade-request@cs.princeton.edu,
  177. and we'll add you to the rayshade mailing list.
  178.  
  179. Craig Kolb
  180. Rod Bogart
  181. 10 January 1992
  182. rayshade-request@cs.princeton.edu
  183.  
  184. Craig Kolb 
  185. Computer Science Department
  186. Princeton University
  187. 35 Olden St.
  188. Princeton, NJ 08544
  189.